/**
 * Created on [2019/6/15 17:34] by 李瑞益
 *
 * 项目名称: sp
 *
 * 本程序版权属于福建慧政通信息科技有限公司所有。
 * 任何组织和个人未经福建慧政通信息科技有限公司许可与授权,不得擅自传播、复制、更改该程序的内容。
 * 本程序受版权法和国际条约的保护。如未经授权而擅自复制或传播本程序(或其中任何部分),
 * 将受到严厉的刑事及民事制裁，并将在法律许可的范围内受到最大可能的起诉!
 *
 * 2019 福建慧政通信息科技有限公司
 */
package com.lry.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 
 *
 * @author 李瑞益
 */
//配置类
@Configuration
//启用属性配置
@EnableConfigurationProperties(AuthorProperties.class)
//在authorService这个类在ioc容器中存在的条件下
@ConditionalOnClass(AuthorService.class)
//在lry.enable这个属性值为true的条件下
@ConditionalOnProperty(name = "lry.enable",havingValue = "true" )
public class CustomAutoConfiguration {

    @Autowired
    private AuthorProperties authorProperties;

    @Bean
    //当ioc容器中不存在这个类时才执行
    @ConditionalOnMissingBean(AuthorService.class)
    public AuthorService authorService(){
        AuthorService a = new AuthorService();
        a.setName(authorProperties.getUserName());
        return a;
    }
}
